﻿using Dispatcher.Tasks.Models;
using Dispatcher.Tasks.Services;
using MiniFox.Components;
using MiniFox.Infrastructure;
using System;
using System.Collections.Generic;

namespace Dispatcher.Tasks.Providers
{
    [AutoRegister]
    public interface IQueueDataProvider
    {
        void ExectionLog(QueueItem queueItem, Response response);

        void FatalLog(QueueItem queueItem, Exception exception);

        int QueueItemCount { get; }

        IEnumerable<QueueItem> LoadQueueItems();

        bool CreateQueueItem(QueueItem queueItem);

        bool RemoveQueueItem(QueueItem queueItem);

        void RetryCounting(QueueItem queueItem);
    }

}
